Skip to content

Bump reconverse to 58921e9 (#217, #222); grow the reconverse CI tier; skip classic-only tests on reconverse - #3974

Merged
adityapb merged 3 commits into
reviewed-with-reconversefrom
bump-reconverse-58921e9
Sep 11, 2026
Merged

Bump reconverse to 58921e9 (#217, #222); grow the reconverse CI tier; skip classic-only tests on reconverse#3974
adityapb merged 3 commits into
reviewed-with-reconversefrom
bump-reconverse-58921e9

Conversation

@lvkale

@lvkale lvkale commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps contrib/reconverse to main 58921e9, which carries two fixes found by Charm++'s own tests, and lets CI run those tests.

  • reconverse Dummy issue #217: CmiWithinNodeBroadcast follows the classic delivery contract (nokeep shared by reference, zerocopy broadcast receive delivered to the calling PE only, caller's buffer consumed). Before it tests/charm++/within_node_bcast aborted at +pe 2 and six of nine tests/charm++/zerocopy directories segfaulted at +pe 4.
  • reconverse Port miniFE to Charm++ #222: reconverse declares CMK_ONESIDED_IMPL (with CMK_ONESIDED_RO_DISABLE), so zcQdIncrement creates one quiescence count per Direct-API RDMA operation, matching reconverse's single acknowledgement. Before it, zerocopy_with_qd with two processes never reached quiescence after its Direct API test. It also declares CMK_MACHINE_PROGRESS_DEFINED, so CkNetworkProgress() drives the network instead of compiling to nothing.

CI tier (reconverse-ci.yaml TEST_DIRS): adds within_node_bcast and eight zerocopy directories, the tests that caught both bugs. zerocopy/zc_post_modify_size stays out until reconverse #223 (two-process data mismatch, present before and after these fixes) is resolved.

Classic-only tests skipped on reconverse (CMK_GDIR=reconverse): tests/charm++/queue (classic's Cqs API, not compiled for reconverse), tests/charm++/longIdle (needs CcdCallOnConditionOnPE), tests/converse/megacon (Cpm interface; reconverse carries its own port, tests/megarecon, reconverse PR #218).

No Charm++ source changes; the quiescence fix takes effect through the rebuild.

Verification

macOS arm64, this tree: the whole TEST_DIRS tier passes in one and two processes, zerocopy_with_qd included. An Anvil run of the same reconverse (two nodes, InfiniBand, hwloc) is in progress and should gate the merge; results will be posted here.

🤖 Generated with Claude Code

…ic-only tests

Reconverse main 58921e9 carries two fixes found by Charm++'s own tests:

- #217: CmiWithinNodeBroadcast now follows the classic delivery contract:
  nokeep messages shared by reference, a zerocopy broadcast receive
  delivered to the calling PE only, the caller's buffer consumed. Before it,
  tests/charm++/within_node_bcast aborted at +pe 2 and six of the nine
  tests/charm++/zerocopy directories segfaulted at +pe 4.
- #222: reconverse declares CMK_ONESIDED_IMPL (and CMK_ONESIDED_RO_DISABLE),
  so zcQdIncrement creates one quiescence count per Direct-API RDMA
  operation, matching the single acknowledgement of reconverse's RMA path.
  Before it, zerocopy_with_qd with two processes never reached quiescence
  after its Direct API test. It also declares CMK_MACHINE_PROGRESS_DEFINED,
  so CkNetworkProgress() now drives the network instead of compiling to
  nothing.

reconverse-ci's TEST_DIRS gains within_node_bcast and eight zerocopy
directories, the tests that caught both bugs; zerocopy/zc_post_modify_size
stays out until reconverse #223 (a two-process data mismatch present before
and after these fixes) is resolved.

tests/charm++/queue and tests/charm++/longIdle are filtered out of TESTDIRS
under reconverse (CMK_GDIR=reconverse): queue tests classic's Cqs API,
which the reconverse build does not compile, and longIdle needs
CcdCallOnConditionOnPE, which reconverse lacks. tests/converse/megacon is
likewise skipped: it is written against the Cpm interface; reconverse
carries its own port of the bank (tests/megarecon, reconverse PR #218).

Verified on macOS arm64 with the equivalent tree (#217 + #222 as the
submodule): the whole TEST_DIRS tier passes in one and two processes,
zerocopy_with_qd included; nine of nine zerocopy directories pass single
process, eight with two processes. An Anvil run (two nodes, InfiniBand,
hwloc) is in progress and gates the merge.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
lvkale and others added 2 commits September 11, 2026 11:12
Charm's feature detection turned CMK_USE_CMA on for every Linux build with
process_vm_readv, reconverse included. Reconverse has no CMA transport:
its conv-rdma.cpp compiles the CMA paths only under a CMK_USE_CMA it never
defines, and it does not parse +noCMAForZC. So a reconverse-linux build
compiled dead CMA branches into Charm++, and the zerocopy tests' Makefiles,
which run their +noCMAForZC variants when CMK_USE_CMA is 1, handed the flag
to programs that do not consume it: "Usage: ./zerocopy_with_qd <array
size>" on Linux CI, while the same tier passes on macOS where CMK_HAS_CMA
is 0. Found by the first Linux run of the widened reconverse-ci tier.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… not for hosted runners)

Its own zerocopy/Makefile keeps it out of the test target for the same
reason; the first Linux run of the widened tier hit a failed assert in it
on both x86_64 (two processes) and arm64 (one process) while every other
directory passed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@lvkale

lvkale commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Anvil results (one node so far; two-node jobs queued behind ~23k pending): charm 310d470e0 built against reconverse 75703b2 (main + #217 + #218 + #220 + #222), EPYC 7763 node, LCI ibv, hwloc 1.11.13.

  • Charm++ tier: 19/19 programs pass single-process, 18/19 with two processes. zerocopy_with_qd reaches all six QD phases cross-process (the Port miniFE to Charm++ #222 fix). The one failure is zc_post_modify_size with two processes: Network completion failed then a hang, i.e. reconverse Replica on Titan is slow #223, present before and after these changes and excluded from the tier here.
  • Affinity binds correctly with real hwloc (+setcpuaffinity +pemap, +showcpuaffinity prints the PU per PE).
  • Reconverse ctest on the compute node: 54/56, the two failures being a test-definition bug already fixed in reconverse Dummy issue #220 and an oversubscription timeout in an 8-CPU allocation (passes with 16).
  • New, pre-existing: anytime_migration/migrate aborts at +pe 3 and +pe 4 in one process (CmiPushPE(... destPe: -1 ...): rank out of range), on the Mac too; +pe 2, which the Makefile runs, passes. Being written up separately.

Two-node results (InfiniBand across hosts) will be added when the wholenode jobs run.

@lvkale

lvkale commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

We don't need to wait for 2 node result for this. Please review and merge.

@adityapb
adityapb merged commit 94235de into reviewed-with-reconverse Sep 11, 2026
5 checks passed
@lvkale

lvkale commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Anvil two-node results are in (wholenode a[365,375] and standard a[492,510], InfiniBand between hosts, charm 310d470 with reconverse 75703b2 = main + #217 + #218 + #220 + #222): the whole tier passes across two nodes, including zerocopy_with_qd (all six QD phases) and within_node_bcast. The only nonzero results are the known ones: zc_post_modify_size across nodes times out (reconverse #223, present before these changes); anytime_migration at +pe 4, which its Makefile does not run (the test assumes 2 PEs); and +pemap 0-3 on the standard partition, whose cgroup excludes cores 0-3 (passes on wholenode). Reconverse's own ctest across two nodes: 35/35 single-process, 19/21 multi-process, the two being the abort_peer wrapper already fixed in reconverse #220 and a partitions-two timeout (reconverse #213's test; passed on one node, to be looked at separately).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants